"""
不可变类型 内存中的数据不允许被修改
数字类型int,bool,float
字符串str
元组tuple
"""


def no_change(num):  # num = a 实际上是把a赋值给num
    print(f'赋值前num的值是{num},地址是{id(num)}')
    num = 5
    print(f'赋值后num的值是{num},地址是{id(num)}')


a = 10
# print(f'调用函数前a的值是{a},a的地址{id(a)}')
# no_change(a)
# print(f'调用函数后a的值是{a},a的地址{id(a)}')

"""
可变类型：内存中数据可以被修改
列表list
字典dict
集合set
"""


def change(new_list):
    new_list[0] = 10
    print(f'new_list的地址是{id(new_list)}')


my_list = [1, 2, 3]

print(f'调用之前my_list{my_list},地址{id(my_list)}')
change(my_list)
print(f'调用之后my_list{my_list},地址{id(my_list)}')
